# 创建一个表示狗的类(Dog)
#   属性：
#       name
#       age
#       gender
#       height
#       ...
#   方法：
#       jiao()
#       yao()
#       run()
#       ...


class Dog:
    '''
        表示狗类
    '''

    def __init__(self, name, age, gender, height):
        self.name = name
        self.age = age
        self.gender = gender
        self.height = height

    def info(self):
        '''
            狗的基本信息！
        '''
        print('这是一条狗，名字叫{}，年龄{}岁，是一条{}狗，身高{}米'.format(self.name, self.age,
                                                      self.gender,
                                                      self.height))

    def jiao(self):
        '''
            狗叫！
        '''
        print('{},汪汪汪！'.format(self.name))

    def yao(self):
        '''
            狗咬骨头！
        '''
        print('{}正在咬骨头!'.format(self.name))

    def run(self):
        '''
            狗跑步！
        '''
        print('{}正在跑步！'.format(self.name))


d1 = Dog('哮天犬', 20000, '母', 10)

print(d1.name, d1.age, d1.gender, d1.height)

d1.info()

# 目前我们可以直接通过 对象.属性 的方式来修改属性值，这种方式导致对象中的属性可以随意修改，
# 非常不安全，值可以任意修改，不论对错，
# 现在我们需要一种方式来增强数据的安全性，
#   1.属性不能随意修改
#   2.属性不能修改为任意的值(如年龄不能是负数)
d1.name = '大黄'

d1.jiao()

d1.yao()
